	// cek apakah sudah diisi semua..
	var pengiriman_empty = function(id){
		var pengiriman = pengiriman_get(id);

		var jumlahKotakStatus    = pengiriman[0] == '';
		var jumlahKecambahStatus = pengiriman[1] == '';

		return new Array(jumlahKotakStatus, jumlahKecambahStatus);
	}

	// get value
	var pengiriman_get = function(id){
		var jumlahKotak    = $('input#jml_kotak-'+id).val();
		var jumlahKecambah = $('input#jml_kecambah-'+id).val();

		return new Array(jumlahKotak, jumlahKecambah);
	}

	var pengiriman_trigger_error = function(id, status){
		// nama, jumlah, satuan, harga
		
		if( status[0] ) $('input#jml_kotak-'+id).addClass('error');
		if( status[1] ) $('input#jml_kecambah-'+id).addClass('error');
	}

	// collect validator
	var pengiriman_validator = function(id, idx){
		var pengiriman = pengiriman_get(id);
		var status     = pengiriman_empty(id);
		
		pengiriman_trigger_error(id, status);
	}

	$.validator.addMethod("jumlah_kotak", function(value, element) {
		var id = $(element).attr('id').substr("jml_kotak-".length);	
		pengiriman_validator(id);
		
		return value != ''  && checkNumber(value);
	}, "Jumlah Kotak harus diisi angka.");

	// jumlah pengiriman dan nama pengiriman harus dipilih... harus keduanya diisi.
	$.validator.addMethod("jumlah_kecambah", function(value, element) {
		var id = $(element).attr('id').substr("jml_kecambah-".length);
		pengiriman_validator(id);
		console.log(id);
		return value != '' && checkNumber(value);
	}, "Jumlah Kecambah harus diisi angka.");
	